package com.ruoyi.system.domain;


import com.fasterxml.jackson.annotation.JsonInclude;
import lombok.Data;

import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.util.List;

/**
 * 对话体
 */
@Data
public class SysTalkBody {

    /**
     * 模型 必填
     */
    @NotEmpty(message = "模型不能为空")
    private String model;

    /**
     * 是否开启流式传输
     */
    private Boolean stream;

    /**
     * 核采样阈值
     */
    private Float temperature;

    /**
     * 可供模型调用的工具
     */
    private List<SysTalkTool> tools;

    /**
     * 用于控制模型是如何选择要调用的函数
     */
    private String toolChoice;

    /**
     * 模型回答的tokens的最大长度
     */
    private Integer maxTokens;

    /**
     * 从k个候选中随机选择⼀个（⾮等概率）
     */
    private Integer topK;

    /**
     * 用户和AI的对话内容
     */
    private List<SysTalkMessage> messages;

}
